# 在第1题的基础上，使用二分查找，查找是否有8这个数,如果有，则返回对应的下标,如果没有，返回-1老韩提示: 注意这里要查找的列表是从大到小...

# 随机生成10个整数(1-100的范围)保存到列表，使用冒泡排序对其进行从大到小排序
import random
from itertools import count

# 初始化一个空列表，用于后续填充随机生成的整数
list_num = []
# 使用for循环随机生成10个1到100之间的整数，并添加到列表中
for i in range(10):
    list_num.append(random.randint(1, 100))


# 定义冒泡排序函数，用于对列表中的整数进行降序排序
def bubble_sort(list_num):
    # 外层循环控制遍历的轮次，每轮遍历都将最大的元素移动到列表的末尾
    for i in range(len(list_num) - 1):
        # 内层循环负责比较相邻的两个元素，并在必要时交换它们的位置
        for j in range(len(list_num) - 1 - i):
            # 如果当前元素小于下一个元素，则交换它们的位置，以实现降序排序
            if list_num[j] > list_num[j + 1]:
                temp = list_num[j]
                list_num[j] = list_num[j + 1]
                list_num[j + 1] = temp


# 调用冒泡排序函数对列表进行排序
bubble_sort(list_num)
# 打印排序后的列表
print(list_num)


# 使用二分查找，查找是否有8这个数
def binary_search(arr, target):
    left = 0
    right = len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        if arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1


count = 0

binary_search(list_num, 8)
if binary_search(list_num, 8) != -1:
    print("找到了")
else:
    print("没找到")

